home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1998 May / Macworld (1998-05).dmg / Serious Demos / Lasso 2.5 Test Drive / Lasso 2.5 CGI / Employees / search3.lasso < prev    next >
Text File  |  1997-12-12  |  16KB  |  397 lines

  1.  
  2.  
  3. <!--
  4.  
  5. This is a sample search file for use with Lasso. Lasso is used in conjunction with Mac OS Web servers to publish FileMaker Pro databases on the web.
  6.  
  7. Lasso is a product of Blue World Communications, Inc. Information is available at http://www.blueworld.com/lasso/
  8.  
  9. Lasso operates by interpreting 'Lasso Tags' placed in HTML 'format' files such as this. There are five types of Lasso tags: action, command, substitution, container, and sub-container. Lasso action and command tags are preceded by a dash. While substitution, container, and sub-container are surrounded by square brackets. All Lasso tags are not case sensitive. That is, Lasso will recognize  "-DATABASE" or "-database" "-DaTaBaSe"; or [server_date], [SERVER_DATE], or [SeRveR_dAtE].
  10.  
  11.  
  12. -->
  13.  
  14. <html>
  15. <head>
  16. <title>Lasso - Search Sample Employees Database</title>
  17. </head>
  18. <body bgcolor=#ffffd9>
  19.  
  20.  
  21.  
  22.  
  23. <center>
  24. <h2>Lasso: Search the Sample Employees Database</h2>
  25.  
  26. </center>
  27.  
  28. <P align="center">This is an example of how to use Lasso to search a FileMaker Pro database.
  29. <P align="center">The name of this file is
  30. <strong>Search3.html</strong>; you'll find useful comments in it.
  31. <center>
  32.  
  33. <!--
  34. The inline tag is used to specify the Lasso action that is to occur. In this case it is simply the "show" action which instructs Lasso to gather information from the specified database.
  35. -->
  36.  
  37. [inline: database="Employees.fp3",layout="Detail",show]
  38.  
  39. [if: inline_result != "noerr"] 
  40. <P><font color="#ED181E"><font size="+2">This link cannot be used unless your Web server application has been configured to process all files with the  ".lasso" suffix with the "Lasso.acgi" application. For details, check with the Lasso User Guide and the documentation that came with your Web server application. </font>
  41. [else]
  42.  
  43. <!-- Setting action="Lasso.acgi" causes the Web server to direct processing to the Lasso.acgi application. The slash indicates that the Lasso application is located at the root level and all format files should be specified from that location. Without the slash all format files are relative to the base URL-->
  44.  
  45. <form action="/Lasso.acgi" method="POST">
  46.  
  47. <!-- The "database" tag tells Lasso which FileMaker Pro database to use; the name is not case sensitive. This tag is required. -->
  48.  
  49. <input type="hidden" name="-database" value="Employees.fp3">
  50.  
  51. <!-- The "layout" tag tells Lasso which layout in the database to use; the name is not case sensitive. Specifying a layout is optional; if omitted, Lasso will use layout 0 of the database.
  52.  
  53. If specified, the layout must contain all fields specified in this form, AND all fields specifed in the format file (see discussion of the "-response" tag, below).
  54.  
  55. Specifying a layout is faster than using layout 0 because Lasso retrieves data for all fields in the layout, even if they're not used in the result page format file. Letting Lasso default to layout 0 is less error prone because it uses all fields in the database.  -->
  56.  
  57. <input type="hidden" name="-layout" value="Summary">
  58.  
  59. <!-- The -noResults tag specifies an HTML file for Lasso to display if no records are found as a result of the search. This field is optional. If omitted, Lasso displays a default "No Results" page. -->
  60.  
  61. <input type="hidden" name="-noresults" value="/Employees/no_results.html">
  62.  
  63. <!-- Below here are the input fields for the search values. The names must match the FileMaker Pro field names exactly, but are not case sensitive. Any field can be left blank to tell Lasso to ignore that field.
  64.  
  65. The [operator] or -operator command tag, which can also be abbreviated [op] or -op, tells Lasso how to compare the value field to find matches. The default is "begins with" (similar to FileMaker Pro's default search operator). If an option list is specified, the default value is the first
  66.                 <option> item in the list, unless the attribute 'selected' is used to indicate the default. You may also use operator in a hidden input field if you'd like. The -operator tag only affects the search field that immediately follows. It defaults back to "begins with" after that search field.
  67.  
  68. The values for -operator must appear exactly as in this example, but are not case sensitive. Alternately, abbreviations may be used for the operator values may be specified in the option tag. This allows use of alternate text to display to the end user. This example uses Lasso abbreviations for the operator values (German translations provided by Marco Galli):
  69.  
  70.     <select name="-operator">
  71.                     <option value="eq"> ist gleich
  72.                     <option value="ct"> enthält
  73.                     <option value="bw"> beginnt mit
  74.                     <option value="ew"> endet mit
  75.                     <option value="gt"> grösser als
  76.                     <option value="gte"> grösser als oder gleich
  77.                     <option value="lt"> kleiner als
  78.                     <option value="lte"> kleiner als oder gleich
  79.             </select>
  80.  
  81. This form shows examples of text input, menus, and radio buttons to specify field values. -->
  82.  
  83. <table border=0>
  84. <tr>
  85.     <td bgcolor=#d7bf89><p align=right><b>First Name</b>    </td>
  86.     <td><select name="-op">
  87.                     <option>begins with
  88.                 <option>equals
  89.                 <option>not equals
  90.                 <option>contains
  91.                 <option>ends with
  92.         </select>
  93.     </td>
  94.     <td><input type=text size=30 name="First Name">    </td>
  95. </tr>
  96. <tr>
  97.     <td bgcolor=#d7bf89><p align=right><b>Last Name</b>    </td>
  98.     <td>    <select name="-op">
  99.                 <option>begins with
  100.                 <option>equals
  101.                 <option>not equals
  102.                 <option>contains
  103.                 <option>ends with
  104.         </select>
  105.     </td>
  106.     <td><input type=text size=30 name="Last Name">    </td>
  107. </tr>
  108. <tr>
  109.     <td bgcolor=#d7bf89><p align=right><b>Employee Number</b>    </td>
  110.  
  111. <!-- The operators "contains", "begins with", and "ends with" don't make sense for numeric fields, therefore we don't offer them as options here. Note the use of the HTML encodings > for > and < for
  112. < . -->
  113.  
  114.     <td><select name="-op">
  115.             <option value="eq" selected> equals
  116.             <option value="neq"> not equals
  117.             <option value="gt"> >
  118.             <option value="gte"> > or =
  119.             <option value="lt"> <
  120.             <option value="lte"> < or =
  121.         </select>
  122.     </td>
  123.     <td><input type=text size=30 name="Employee Number">    </td>
  124. </tr>
  125. <tr>
  126.     <td bgcolor=#d7bf89><p align=right><b>Email</b>    </td>
  127.     <td>    <select name="-op">
  128.                     <option>begins with
  129.                 <option>equals
  130.                 <option>not equals
  131.                 <option>contains
  132.                 <option>ends with
  133.     </select>
  134.     </td>
  135.     <td><input type=text size=30 name="Email">    </td>
  136. </tr>
  137. <tr>
  138.     <td bgcolor=#d7bf89><p align=right><b>Comments</b>    </td>
  139.     <td>    <select name="-op" size=1>
  140.                 <option>contains
  141.                 <option>begins with
  142.                 <option>equals
  143.                 <option>not equals
  144.                 <option>ends with
  145.         </select>
  146.     </td>
  147.     <td><input type=text size=30 name="Comments">    </td>
  148. </tr>
  149. <tr>
  150.     <td bgcolor=#d7bf89><p align=right><b>Date Last Modified</b>    </td>
  151.     <td>    <select name="-op">
  152.             <option value="eq"> equals
  153.             <option value="neq"> not equals
  154.             <option value="gt"> >
  155.             <option value="gte" selected> > or =
  156.             <option value="lt"> <
  157.             <option value="lte"> < or =
  158.         </select>
  159.     </td>
  160.     <td><input type=text size=30 name="Edit Date">    </td>
  161. </tr>
  162. <tr>
  163. <!-- The [option: Field Name] tag can be used to format fields that contain value lists as HTML pop-up/pull-down menus. Lasso will substitute HTML in the form:
  164.  
  165.                 <option>List Value
  166.  
  167. for every value in the value list. Note that a "blank" selection is provided in the pop-up menu so that the user can choose not to specify a value for this field. -->
  168.  
  169.     <td bgcolor=#d7bf89><p align=right><b>Group</b>    </td>
  170.     <td colspan=2><select name="Group">
  171.             <option value="" selected>None [option: "Group"]
  172.         </select>
  173.     
  174. <!-- Field-level operators are possible using the "-opbegin" and "-opend" tags to specify that whatever is selected for this particular entry, not be included in this search. It is also possible to include two fields and require that they both be included (an "and" logical operator) while the rest of the search form uses the "or" logical operator. -->
  175.  
  176.  <b>Not:</b>
  177.     
  178.     <input type="hidden" name="-opbegin" value="not">
  179.         <select name="Group">
  180.             <option value="" selected>- - omit group - -
  181.          [option: "Group"]
  182.         </select>
  183.     <input type="hidden" name="-opend">
  184.  
  185.     </td>
  186. </tr>
  187. <tr>
  188.     <td valign="top" bgcolor=#d7bf89><p align=right>
  189. <b>Shift</b>    </td>
  190.     <td colspan=2>
  191. <input type=radio name="Shift" value="" checked>None [value_list:"Shift"]
  192. <input type="radio" name="Shift" value="[list_value]">[list_value] [/value_list]    
  193.     </td>
  194. </tr>
  195.  
  196.  
  197. <tr>
  198.     <td valign="top" bgcolor=#d7bf89><p align=right>
  199. <b>Favorite Colored Dot</b>    </td>
  200.     <td colspan=2>
  201.  
  202. <input type=hidden name="-op" value="eq">
  203. <input type=radio name="Favorite Colored Dot" value="" checked>None
  204. <input type=radio name="Favorite Colored Dot" value="green_dot.gif">
  205. <img src="/Employees/green_dot.gif"> Green
  206. <input type=radio name="Favorite Colored Dot" value="purple_dot.gif">
  207. <img src="/Employees/purple_dot.gif"> Purple
  208. <input type=radio name="Favorite Colored Dot" value="red_dot.gif">
  209. <img src="/Employees/red_dot.gif"> Red
  210.     </td>
  211. </tr>
  212. <tr>
  213.     <td valign="top" bgcolor=#d7bf89><p align=right>
  214.  
  215. <!-- The [value_list: Field Name] tag can be used to format fields that contain value lists as a set of radio buttons or checkboxes. All HTML between the [value_list: Field Name] and [/value_list] tags is repeated for every value in the value list. The actual list value is substitued for the [list_value] tag.  -->
  216.  
  217. <b>Nice Traits</b>    </td>
  218.     <td colspan=2> 
  219. [value_list: "Nice Traits"]
  220. <input type="checkbox" name="Nice Traits" value="[list_value]">[list_value] [/value_list]
  221.     </td>
  222. </tr>
  223.  
  224.  
  225. <tr>
  226.  
  227. <!-- Searches on numeric and date ranges can be accomplished by providing two values for the field with appropriate comparison operators. Note that an operator must be used with fields that are defined as date or time and that only the equals, greater than (equals), or less than (equals) opertors can be used with these type of fields. -->
  228.  
  229.     <td bgcolor=#d7bf89><p align=right><b>Hire Date</b>    </td>
  230.     <td colspan=2>
  231. <select name="-op">
  232.             <option value="gte"> from
  233.             <option value="gt"> after
  234.         </select>
  235. <input type=text name="Hire Date" size=10>
  236. <select name="-op">
  237.             <option value="lte"> to
  238.             <option value="lt"> before
  239.         </select>
  240. <input type=text name="Hire Date" size=10>
  241.     </td>
  242. </tr>
  243.  
  244.  
  245.  
  246. <tr>    <td colspan=3><hr>    </td></tr>
  247.  
  248. <tr>
  249.  
  250. <tr>
  251.  
  252. <!-- The "logicalop" tag can be used to specify whether Lasso performs an AND or an OR search for all field values. This is an optional tag; if not specified, the default is AND.  -->
  253.  
  254.     <td bgcolor=#d7bf89><p align=right><b>Logical Operator</b>    </td>
  255.     <td>
  256. <input type=radio name="-logicalop" value="and" checked>AND
  257. <input type=radio name="-logicalop" value="or">OR    </td>
  258.  
  259. <!-- The "maxRecords" tag limits the number of records returned by Lasso. Specifying "all" tells Lasso to return all records. There is no limit imposed by Lasso on the number of records that can be returned. However, a perception of faster performance will be given by returning a small number of records, and using "[next]" links to view successive pages. See the file "hitlist_format.html" for a discussion of "[next]" links.
  260.  
  261. The 72K byte limit can be increased by increasing the memory partition in the "Get Info" box for the Web Server. -->
  262.  
  263.     <td><b>Return</b>
  264.         <select name="-maxRecords">
  265.             <option>5
  266.             <option selected>10
  267.             <option>20
  268.             <option>30
  269.             <option>50
  270.             <option>all
  271.         </select>
  272. <b>records per page
  273.     </td>
  274. </tr>
  275.  
  276. <!-- The "sortfield" tag tells Lasso which field to sort the results on. It is optional. The value of "Unsorted" (not case sensitive) is recognized by Lasso or the field can be left without any value to leave records unsorted.
  277.  
  278. There is no limit to the number of sort fields that can be specified by the "sortfield" tag. If multiple tags appear, the sorts will be nested in the order in which they appear on the search form.  -->
  279.  
  280. <tr>
  281.     <td bgcolor=#d7bf89><p align=right><b>Sort By</b>    </td>
  282.     <td><select name="-sortfield">
  283.                 <option VALUE="" SELECTED>- Select -
  284.                 <option>unsorted
  285.                 <option>First Name
  286.                 <option>Last Name
  287.                 <option>Employee Number
  288.                 <option>Hire Date
  289.                 <option>Group
  290.                 <option>Shift
  291.         </select>
  292.     </td>
  293.  
  294. <!-- The -sortordertag applies to the immediately preceding -sortfield. This tag is optional and defaults to "ascending". The value "custom" can be used for fields that contain value list to sort in value list order. -->
  295.  
  296.     <td><select name="-sortorder">
  297.             <option selected>ascending
  298.                 <option>descending
  299.         </select>
  300.     </td>
  301. </tr>
  302. <tr>
  303.     <td bgcolor=#d7bf89><p align=right><b>Sort By</b>    </td>
  304.     <td><select name="-sortfield">
  305.                 <option VALUE="" SELECTED>- Select -
  306.                 <option>unsorted
  307.                 <option>First Name
  308.                 <option>Last Name
  309.                 <option>Employee Number
  310.                 <option>Hire Date
  311.                 <option>Group
  312.                 <option>Shift
  313.         </select>
  314.     </td>
  315.     <td><select name="-sortorder">
  316.             <option selected>ascending
  317.                 <option>descending
  318.         </select>
  319.     </td>
  320. </tr><tr>
  321.     <td bgcolor=#d7bf89><p align=right><b>Response Layout</b>    </td>
  322.  
  323.     <td colspan="2">
  324. <!-- The "response" tag tells Lasso which format file to use for formatting output. There can be one or more hitlist format files to display the search results. And, the user can be given the option to select which hitlist format file to display. For example, you could have a long form to display a lot of fields, and a short form to display limited fields for a set of records. The following syntax shows how to creating radio buttons for selecting the preferred hitlist.
  325.  
  326. Alternately, the "response" tag can be specified in a hidden input field if no choice is to be given to the user for formatting search results. -->
  327.  
  328. <input type=radio name="-response" value="/Employees/hitlist_format.html" checked>Standard Hitlist    
  329. <input type=radio name="-response" value="/Employees/hitlist2_format.html">Alternate Hitlist
  330.     </td>
  331.  
  332. </tr>
  333. <tr>    <td colspan=3><hr>    </td></tr>
  334. </table>
  335.  
  336.  
  337. <p>
  338. <!-- Clicking the "search" button causes Lasso to conduct a database search based on the criteria specified by the user in this form. The value of this button can be anything. -->
  339.  
  340. <input type="Submit" name="-search" value="Start Search">
  341.  
  342. <!-- Clicking the "findall" button causes Lasso to return all records in the database, regardless of the criteria specified in this form. The "sortfield," "sortorder," and "maxRecords" values will be applied to the returned records. The value of this button can be anything. -->
  343.  
  344. <input type="Submit" name="-findall" value="Find All">
  345.  
  346. <!-- The reset button has no effect on Lasso, it merely clears the current form. Reset does not change field information stored in the FileMaker Pro database -->
  347.  
  348. <input type="Reset" value="Clear this form">
  349.  
  350.  
  351. </form>
  352. </center>
  353.  
  354. <!-- The [include] tag instructs Lasso to parse and insert the output HTML from the specified format file into the HTML for this format file. -->
  355.  
  356. <p>
  357. <center>
  358. <b><a href="Lasso.acgi?-database=Employees.fp3&-layout=Detail&-response=/Employees/Search.html&-show">
  359. [ Search Database ]</a></b>  
  360.  
  361. <b><a href="Lasso.acgi?-database=Employees.fp3&-layout=Detail&-response=/Employees/Add.html&-show">
  362. [ Add Record ]</a></b>
  363.  
  364. <b><a href="Lasso.acgi?-database=Employees.fp3&-layout=Detail&-response=/Employees/random_reply.html&-random">[ Get Random Record ]</a></b>
  365.  
  366. <hr>
  367. <a href="http://www.blueworld.com/lasso/">
  368. <img src="/Employees/lassologo.gif" border=0 alt="Lasso Home Page"></a>
  369. <hr>
  370. <TABLE>
  371. <TR>
  372.     <TD align=right bgcolor=#d7bf89><B>Client Address:</B></TD>
  373.     <TD bgcolor=#ffffff>[client_addr]</TD>
  374. </TR>
  375. <TR>
  376.     <TD align=right bgcolor=#d7bf89><B>Client IP:</B></TD>
  377.     <TD bgcolor=#ffffff>[client_ip]</TD>
  378. </TR>
  379. <TR>
  380.     <TD align=right bgcolor=#d7bf89><B>Client Type:</B></TD>
  381.     <TD bgcolor=#ffffff>[client_type]</TD>
  382. </TR>
  383. <tr>
  384.     <td align=right bgcolor=#d7bf89><B>Server Date:</B></td>
  385.     <td bgcolor=#ffffff>[server_date, long]</td>
  386. </tr>
  387. <tr>
  388.     <td align=right bgcolor=#d7bf89><B>Server Time:</B></td>
  389.     <td bgcolor=#ffffff>[server_time, long]</td>
  390. </tr>
  391. </TABLE>
  392. </center>
  393.  
  394. </body>
  395. </html>
  396. [/if][/inline]
  397.